"""
    type:类型完全相同，isinstance:判断对象是不是一种类型，issubclass:判断类型是不是一种类型
    继承:重用现有类的功能，并在此基础上进行扩展
        代码不用子类写，但是可以直接用
"""
# 适用性：多个类型，代码上有共性且概念上统一
class Person:
    def say(self):
        print("在讲话")

# class Student:
#     def play(self):
#         print("在玩耍")
#
#     def say(self):
#         print("在讲话")
#
# class Teacher:
#     def teach(self):
#         print("在教学")
#
#     def say(self):
#         print("在讲话")

class Student(Person):
    def play(self):
        print("在玩耍")
        self.say()



class Teacher(Person):
    def teach(self):
        print("在教学")

teacher = Teacher()
teacher.teach()
teacher.say()

person = Person()
person.say()

stu = Student()
stu.play()
stu.say()
# 关系判定
# 老师对象 是一种 人类型
print(isinstance(teacher,Person))
#人对象 是一种 人类型
print(isinstance(person,Person))
# 人对象 是一种 老师类型
print(isinstance(person,Student))

# 老师对象 是一种 人类型
print(issubclass(Teacher,Person))
#人对象 是一种 人类型
print(issubclass(Person,Person))
# 人对象 是一种 老师类型
print(issubclass(Person,Student))

# 老师对象的类型 是一种 人类型
print(type(teacher) == Person)
#人对象的类型 是一种 人类型
print(type(person) == Person)
# 人对象的类型 是一种 老师类型
print(type(person) == Student)


